#pragma once
#include"DGGSGeometry.hpp"

_NNU_DGGS_BEGIN
namespace Feature
{
    /// <summary>
    /// 格网系统的点结构
    /// </summary>
    class DGGSPoint : public DGGSGeometry
    {
    public:
        DGGSPoint()
        {
            this->_shapeType = ST_Point;
            this->_gridCount=0;
        }

        ~DGGSPoint()override;

        /// <summary>
        /// 设置格网数据
        /// </summary>
        /// <param name="srcData">格网数据</param>
        bool setGridData(DGGSElementCode* srcData)override;

        /// <summary>
        /// 设置格网数据
        /// </summary>
        /// <param name="index">格网索引</param>
        DGGSElementCode getGridCodeByIndex(int index)override;


        /// <summary>
        /// 设置网格数量
        /// </summary>
        /// <param name="gridCount">网格数量</param>
        void setGridCount(int gridCount)override;

        /// <summary>
        /// 获取网格数据
        /// </summary>
        /// <param name="srcData">格网数据</param>
        bool getGridData(DGGSElementCode* &srcData)override;

        /// <summary>
        /// 获取网格数据
        /// </summary>
        /// <param name="srcData">格网数据</param>
        void addGridCode(DGGSElementCode srcCode)override;

        /// <summary>
        /// 获取网格数量
        /// </summary>
        int getGridCount()override;

        /// <summary>
        /// 深拷贝
        /// </summary>
        DGGSPoint* deepCopy() override;

        /// <summary>
        /// 判断是否相同
        /// </summary>
        /// <param name="other">另外一个Geometry</param>
        bool Equals( DGGSGeometry *other)override;
    };

}

_NNU_DGGS_END
